﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;

namespace BU
{
    [Serializable()]
    public class BUSchap
    {
        private Point x; //De x locatie in de zijde     
        private Point y; //De y locatie in de zijde
        private List<BUArtikel> artikelen; //De lijst van artikelen in dit schap

        public BUSchap()
        {            
        }

        public BUSchap(SerializationInfo info, StreamingContext ctxt)
        {
            this.x = (Point)info.GetValue("X", typeof(Point));
            this.y = (Point)info.GetValue("Y", typeof(Point));
            this.artikelen = (List<BUArtikel>)info.GetValue("Artikelen", typeof(List<BUArtikel>));
        }

        public void GetObjectData(SerializationInfo info, StreamingContext ctxt)
        {
            info.AddValue("X", this.x);
            info.AddValue("Y", this.y);
            info.AddValue("Artikelen", this.artikelen);
        }

        /// <summary>
        /// Voegt artikel toe aan het schap
        /// </summary>
        /// <param name="artikel">Het toe te voegen artikel</param>
        public void VoegArtikelToeAanSchap(BUArtikel artikel)
        {
            this.artikelen.Add(artikel);
        }

        /// <summary>
        /// Verwijdert artikel uit het schap
        /// </summary>
        /// <param name="artikel">Het te verwijderen artikel</param>
        public void VerwijderArtikelUitSchap(BUArtikel artikel)
        {
            this.artikelen.Remove(artikel);
        }
    }
}
